home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8174 / 8174.xpi / chrome / antbar.jar / content / grabber / grabber.js < prev    next >
Text File  |  2009-12-30  |  3KB  |  109 lines

  1. // 
  2. //  grabber.js
  3. //  firefox
  4. //  
  5. //  Created by Zak on 2008-07-14.
  6. //  Contributor Brian King (http://briks.si)
  7. //  Copyright 2008-2009 Ant.com. All rights reserved.
  8. // 
  9.  
  10. var AntGrabber =  {
  11.  
  12.     queryObserver: null,
  13.     htmlParser: null,
  14.     state: false,
  15.     isStarted: function () {
  16.         var self = AntGrabber;
  17.         return self.state;
  18.     },
  19.  
  20.     /**
  21.      * This method starts observing firefox requests and set a onload event
  22.      * to be able to parse the current page and detect flvs
  23.      */
  24.     init: function () 
  25.     {
  26.         var self = AntGrabber;
  27.         self.queryObserver = new AntQueryObserver();
  28.         self.htmlParser = new AntHtmlParser();
  29.         self.start();
  30.     },
  31.  
  32.     /**
  33.      * Initialize the HTML Parser class
  34.      */
  35.     initHtmlParser: function (event)
  36.     {
  37.         var self = AntGrabber;
  38.         
  39.         //return function (event) {
  40.             if (event.originalTarget instanceof HTMLDocument)
  41.             {
  42.                 var currentDoc = event.originalTarget;
  43.                 var rootDoc = currentDoc;
  44.  
  45.                 if (event.originalTarget.defaultView.frameElement)
  46.                 {
  47.                     while (rootDoc.defaultView.frameElement)
  48.                         rootDoc = rootDoc.defaultView.frameElement.ownerDocument;
  49.                     // AntLib.toLog('Frame: ' + currentDoc.location.href);
  50.                 }
  51.                 else
  52.                 {
  53.                     // AntLib.toLog('RootPage: ' + currentDoc.location.href);
  54.                 }
  55.                 //that.htmlParser.onShowPage(currentDoc, rootDoc);
  56.                 self.htmlParser.onShowPage(currentDoc, rootDoc);
  57.             }
  58.         //}
  59.     },
  60.     
  61.     /**
  62.      * Start the grabber
  63.      */
  64.     start: function ()
  65.     {
  66.         var self = AntGrabber;
  67.         var observerService = AntLib.CCSV("@mozilla.org/observer-service;1", "nsIObserverService");
  68.  
  69.         /*
  70.         window.addEventListener("load", function () {
  71.         gBrowser.addEventListener("DOMContentLoaded", AntGrabber.initHtmlParser(), true);
  72.         }, false);
  73.         */
  74.         observerService.addObserver(self.queryObserver, "http-on-examine-response", false);
  75.         observerService.addObserver(self.queryObserver, "http-on-examine-cached-response", false);
  76.  
  77.         self.state = true;
  78.     },
  79.     
  80.     /**
  81.      * Called when a new flv is found
  82.      * @param flvLink       The found flv object
  83.      */
  84.     foundFlvLink: function (flvLink)
  85.     {
  86.         AntLib.toLog("AntGrabber: New video found [Origin: "+flvLink.origin+", URL: "+flvLink.url+", Name: "+flvLink.name+"]");
  87.  
  88.         var doc = flvLink.doc;
  89.  
  90.         if (typeof(doc.__antflv__) == 'undefined')
  91.             doc.__antflv__ = new Array();
  92.  
  93.         if (AntPrefs.isNotification)
  94.             AntFlvList.notify(flvLink);
  95.  
  96.         /**
  97.          * The video list is odered by flv score :
  98.          */
  99.  
  100.         var pos;
  101.         for (pos in doc.__antflv__)
  102.             if (doc.__antflv__[pos].score <= flvLink.score)
  103.                 break;
  104.         doc.__antflv__.splice(pos, 0, flvLink);
  105.  
  106.         AntFlvUi.updateDownloadButton();
  107.     }
  108. };
  109.